home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / comm / fido / crystalfix.lha / CrystalFix.doc next >
Text File  |  1994-08-05  |  37KB  |  800 lines

  1.      ______                                    ________
  2.     / ____/|                    __            / / ____/|  __    v2.0
  3.    / /|___|/______   __ _______/ /_________  / / /____|/\/ /|   (c) 1994
  4.   / / /    / __/ /| / // _____/ ___/ ___  /|/ / ___/ /|\  / /   by Frank J.
  5.  / /_/____/ / / //_/ /_\___ \/ /|_/ /|_/ /_/ / / _/ / //  \/    Perricone
  6. /________/_/ /____  /_______/____/________/_/_/ //_/ //_/\_\
  7. |________|_|/|__ / /| ______|____|________|_|_|/ |_|/ |_|/|_|   All rights
  8.             ____/ / /                                           reserved
  9.            /_____/ /
  10.            |_____|/   by Frank J. Perricone, 1:325/611, perricone@wsyd.com
  11.                          compiled C version by Brian McMurry, 1:102/844
  12.  
  13.  
  14. *** What is CrystalFix? **************************************************
  15.  
  16. CrystalFix is an Areafix program for your FidoNet BBS.  It works with (and
  17. only with) the TrapToss message tosser by Rene Hexel et. al.  Optionally
  18. it can also be used with FTick 0.97 by Peer Hasselmeyer.  The version in
  19. this archive is in ARexx; a compiled C version is available to registered
  20. users.  (Registration costs one postcard; see below.)
  21.  
  22. An Areafix program is a program which takes care of attaching and detaching
  23. any other systems which feed from you, from those areas you or your host
  24. carries.  With an Areafix installed, if one of your downstream nodes wants
  25. to start carrying an area, they send a message to Areafix on your system
  26. with commands for text.  Areafix reads the message, carries out the
  27. commands (updating your tosser configuration), and sends a reply to the
  28. SYSOP who made the request.
  29.  
  30. Using this system, your downlinks can do the following things with
  31. CrystalFix:
  32.  * get a list of areas available to them, which shows which ones they
  33.    are already connected to; this includes both message and file areas
  34.  * attach to an area
  35.  * detach from an area
  36.  * rescan an area (message only)
  37.  * request a message area you don't carry, but which your uplink does.
  38.    The request is automatically forwarded upstream and connected.
  39.  
  40. All this is fairly typical, more or less, of most Areafix programs.  What
  41. makes CrystalFix special?
  42.  
  43.  * It works tightly with TrapToss.  In fact, it doesn't even have its own
  44.    config file.  Instead, it uses TrapToss's config file.  It gets almost
  45.    all of its info from your already-present TrapToss items, such as your
  46.    node address, your area list, even your loglevel.  You can add a few
  47.    (optional) extra commands to your AREA command blocks (which won't
  48.    bother TrapToss) to control fixing those areas.  There are also a few
  49.    CrystalFix-specific commands which reside in the [CrystalFix] section.
  50.    One less config file to create, one less file to manage every time you
  51.    make a change on your system.
  52.  
  53.  * Support for FTick so message and file areas are handled by one program.
  54.    File areas can be attached and detached (with your choice of default
  55.    FTick flags).  Since FTick doesn't support rescans or passthroughs,
  56.    neither does CrystalFix for file areas.
  57.  
  58.  * Simple setup.  Copy a few files, add a line to your AfterSession
  59.    script, and then add a few config entries to your Mail:Fido.cfg and
  60.    you're all ready.  For FTick support, add basically the same items to
  61.    your FTick areas, plus one new keyword, and you're set.
  62.  
  63.  * Support for forwarded requests.  You can have a list of areas that
  64.    your host (or hosts) make available to you, which you don't carry.
  65.    Your downlinks can request them, and CrystalFix will automatically
  66.    forward the request upstream and update the config file appropriately.
  67.    If the last downlink detaches from such an area, the detach will also
  68.    be forwarded upstream and the area deleted.  This all happens
  69.    automatically.  You use the FIDONET.NA file or equivalent as the list
  70.    of upstream areas, so that you don't have to edit it, and so new ones
  71.    automatically update your configuration when they come in via file
  72.    echo or whatever.
  73.  
  74.  * Doesn't leave a million files laying around.  Other than the program
  75.    itself it uses only one file, in Mail:.  If you support upstream
  76.    forwarded requests, it uses external files in the FIDONET.NA
  77.    format as well; this saves you having to import them into your
  78.    config file, and means new .NA files automatically update your
  79.    setup.
  80.  
  81.  * Each system you authorize to areafix from you gets a security level.
  82.    By protecting individual areas, you can hand out access as you wish.
  83.    Unlike most Areafix programs, this can also be used to FORCE systems
  84.    to get an echo.  Simply attach them manually, then raise the level
  85.    of that echo above their level.  They still get the echo, but they
  86.    can't attach, detach, or rescan it.  Areas can be grouped, and you
  87.    can give access within groups at various levels, and as many groups
  88.    as you like for each system.  Rescan avoids the dupes-to-points
  89.    problem caused by simply deleting the hiwater mark.  (If you don't
  90.    know what that is, don't worry about it.)
  91.  
  92.  * Areas have descriptions which are displayed in queries and messages,
  93.    whenever appropriate.  Helps your downlinks decide what they want.
  94.    Fill these in straight from FIDONET.NA or equivalent, or write your
  95.    own.  They're entirely optional, too.  Forwarded-request areas get
  96.    their descriptions from the FIDONET.NA file automatically.
  97.  
  98.  * Full multinetwork support; your nodes can areafix areas in different
  99.    networks.  The only restriction: the message requesting an area must
  100.    be addressed from the address they want the area to be sent to.
  101.    (That sentence will make sense if you read it a few times.)
  102.  
  103.  * No limit to the number of areas, the number of authorized systems,
  104.    or the number of forward-requestable areas, except available memory.
  105.    No limits to the number of security levels, the lengths of
  106.    descriptions, etc.  No limits on how many systems can be attached to an
  107.    area, except for what TrapToss enforces.
  108.  
  109.  * 9 logging levels.  Get as terse or as voluminous a report as you like.
  110.  
  111.  * It's inexpensive -- costs you one postcard plus one stamp.
  112.  
  113.  * Source is released, in ARexx, for easy modification.  Compiled C
  114.    version, written by Brian McMurry based on the ARexx version written
  115.    by me, will be available to registered users.
  116.  
  117.  * These docs may not be "fantastic", but at least they're step-by-step.
  118.  
  119.  and the most important one -- the reason I wrote my own Areafix --
  120.  
  121.  * unlike several of the others out there, IT WORKS, and it doesn't
  122.    turn your tosser and ticker config files into a tossed salad!
  123.  
  124.  
  125. *** What are the disadvantages? ******************************************
  126.  
  127.  * You have to drive all the way into town to get a postcard!
  128.    Horrors!  :)
  129.  
  130.  
  131. *** How do I set up CrystalFix? ******************************************
  132.  
  133.   "Explain all that", said the Mock Turtle.
  134.   "No, no!  The adventures first!", said the Gryphon in an impatient tone:
  135.   "explanations take such a dreadful time."
  136.  
  137.   -- Lewis Carroll, _Alice's_Adventures_In_Wonderland_
  138.  
  139. Note: the following instructions are not a brief overview, they are
  140. the whole ball of wax.  You can do them one at a time without even
  141. reading ahead, and get your setup running in no time.  Please read
  142. each one thoroughly and carefully, though.
  143.  
  144.  1. Copy the following files to somewhere in your path.  Or better yet,
  145.     for a significant speed increase, make them pure, then make them
  146.     resident in your s:user-startup or somewhere.
  147.  
  148.       FAreaSize
  149.       FidoSetInfo
  150.       FidoGetInfo
  151.       FidoShow
  152.       FidoEnter
  153.  
  154.     You may find you need a larger stack than the default 4000.  I am
  155.     not sure exactly how much.  I have lots of memory so I keep mine at
  156.     20000 all the time anyway.  Change this by adding a line to the
  157.     script that runs CrystalFix, or even to your user-startup or
  158.     startup-sequence.  Also, it is assumed TrapToss itself is in your
  159.     path somewhere.
  160.  
  161.  2. Copy CrystalFix.rexx to REXX: or Mail:rexx or somewhere.  (I use
  162.     Mail:rexx.)  Or if you're using the C compiled version, copy
  163.     CrystalFix to somewhere in your PATH.
  164.  
  165.  3. Copy CrystalFix.help into MAIL:.  You might want to edit it, but
  166.     it should be perfectly usable as is.  You can put it somewhere
  167.     else if you like.
  168.  
  169.  4. You will need to make a few changes to your TrapToss config file.
  170.     Most of these will be pretty simple, but we'll go through them
  171.     one at a time.  I assume herein that your config file is named
  172.     Mail:Fido.cfg but it doesn't matter if it's something else.
  173.  
  174.     In case you don't know, your config file is broken up into
  175.     "sections".  The file starts with the global section, whose options
  176.     apply to ALL programs.  Then you'll find lines with a name inside
  177.     square brackets, like [TrapToss], which mark the beginning of
  178.     sections specific to that program.  You should always have a
  179.     TrapToss section, and you'll be creating a CrystalFix section later.
  180.     You may also have sections for TrapList or other programs.
  181.  
  182.     The first thing to do is to check on the placement of your AREA
  183.     blocks.  In TrapToss's config file, each AREA command begins a
  184.     block and is followed by zero or more lines modifying that area,
  185.     such as MAIN, KEEP, DISALLOW, STRIP, etc.  The block is ended
  186.     by the next AREA, the end of a section, or the end of file.
  187.     You should never have any "global" (that is, not area-specific)
  188.     commands between or after your AREA blocks.  You can get away
  189.     with it sometimes, but you could confuse TrapToss, and you
  190.     definitely will confuse CrystalFix.  So ensure that the AREA blocks
  191.     are all together, and that they're the last thing in the TrapToss
  192.     section.
  193.  
  194.     Your file is probably already set up correctly in this respect.
  195.     If not, move the AREA blocks to the end of the TrapToss section.
  196.  
  197.     One other thing to check is your 4DMSGHEADER command, or lack thereof.
  198.     The default is to not have 4D message headers.  If your BBS can support
  199.     them, I *STRONGLY* suggest you turn them on; it'll make message parsing
  200.     much more reliable.  If your BBS won't support them, ask the author to
  201.     make it support them.  If it's turned off, CrystalFix should still
  202.     work.  (Though messages crossing zones without an INTL kluge will be
  203.     parsed wrong, and other similarly obscure problems can come up.)
  204.  
  205.     The enclosed SampleFido.cfg file might be worth looking over as you
  206.     read the next few sections.  It consists of extracts from my actual
  207.     config file.
  208.  
  209.  5. The next step is to plan out your security.  CrystalFix offers two
  210.     tools for security: levels and groups.  Combining them, you can
  211.     control access to a fine degree.  But first you need to learn a bit
  212.     about these tools and then plan out your security.  In the next
  213.     step you'll actually set it up.
  214.  
  215.     Levels are pretty straightforward: higher numbers mean more
  216.     restrictions, and you can use any number you like.  The default is 0
  217.     for each area.  You can even use negative numbers.  To attach or
  218.     detach an area, you have to have a level as high or higher than
  219.     the area.
  220.  
  221.     Groups are, in a way, a lot more powerful.  Each group is represented
  222.     by a single letter.  (Actually, you can use digits or punctuation,
  223.     but just stick to letters for now.)  Each downlink system can belong
  224.     to none, one, or several groups.  And each area and host can require
  225.     none, one or several.  The most common thing is for a system to belong
  226.     to one or several, and for an area to require only one.  For example,
  227.     all your Fido echos might require group F, and your local echos might
  228.     require group L.  One of your downlinks might belong to group F, and
  229.     another might have group FL -- that is, both groups.
  230.  
  231.     If an area requires more than one group, the group letters can occur
  232.     in any order.  And if a system belongs to more than one group, they
  233.     can also occur in any order.  Just as long as the system belongs to
  234.     every group that the area requires, they can get in.
  235.  
  236.     You can get tricky if you want to.  Suppose you have an area which is
  237.     about the gating between WizardNet (group W) and XylophoneNet (group
  238.     X), and you only want to allow people who have access to *both* nets
  239.     to have access to this area.  Give it a group of "WX".  A system with
  240.     group access "AFXRW" can get this area, but "AFXR" can't, nor can "W".
  241.     To put it simply, to get an area, you have to own all the group letters
  242.     that the area requires.  Note: both areas and systems are allowed to
  243.     list *no* group letters.  An area with no group letters can be accessed
  244.     by anyone (as long as they have a high enough level).
  245.  
  246.     One more trick: these restrictions only prevent a system from making
  247.     CHANGES to their attach status.  If a system is attached to an area
  248.     but doesn't have security access to that area, they stay attached;
  249.     in fact, they can't DETACH.  This means that not only can you
  250.     prevent a system from getting an area, you can also require them to
  251.     get an area.  In essence, CrystalFix ignores an area that the system
  252.     has no security access to: they can't attach, detach, or rescan it,
  253.     and they won't even see it in queries!  But *TrapToss* doesn't care
  254.     about CrystalFix's levels.
  255.  
  256.     During this step, plan out your security.  The typical setup uses the
  257.     group letters extensively, but with each area in only one group, and
  258.     uses levels only to set rights within groups.  But you can make many
  259.     combinations.
  260.  
  261.  6. Now that you've planned your security, you will want to add some
  262.     commands to each AREA block.  That is, add a line or two under each
  263.     AREA command (but before the next AREA command).  I like to indent
  264.     these two spaces, and CrystalFix will also indent them.
  265.  
  266.     LEVEL <level>
  267.     Use this command to set the level for the preceding AREA.  If you
  268.     leave this out, the level is 0.
  269.  
  270.     GROUP "<group(s)>"
  271.     You can also use the word GROUPS but GROUP is preferred.  The
  272.     list of groups can be enclosed in quotes; if it's empty, it MUST be.
  273.     If you leave this out, the area requires no groups.  Note: stick
  274.     to letters for your groups, and maybe digits if you run out.  Don't
  275.     use punctuation or other weird characters.  They may work today, but
  276.     they may not work tomorrow.  Also, upper and lower case are
  277.     equivalent.  Spaces will be ignored.
  278.  
  279.     For example, look at this AREA block:
  280.  
  281.       AREA TRAPDOOR  Mail:echos/TRAPDOOR    1:325/611.0 1:141/1130.0
  282.         LEVEL 5
  283.         GROUP "F"
  284.         KEEP 100
  285.         DESCRIPTION "Discussion about TrapDoor, TrapToss, et. al."
  286.  
  287.     (The DESCRIPTION is the next step.)
  288.  
  289.  7. Put one more line into your AREA blocks with the description of the
  290.     area.  The command is:
  291.  
  292.       DESCRIPTION "<description>"
  293.  
  294.     The quotemarks are required if there are any spaces in the
  295.     description; it's best to just put them in.  DESC is a valid (but
  296.     not preferred) equivalent.  If you leave this line out, the area
  297.     will show up as "No description available".  Note: whenever
  298.     CrystalFix has to write the file out, due to any changes, it will
  299.     always write all three of the above commands anyway.
  300.  
  301.  8. The rest of the configuration commands belong in CrystalFix's
  302.     private section.  Add the line [CrystalFix] to your file.  I
  303.     recommend adding it just after the [TrapToss] section.  (If you
  304.     put it BEFORE the TrapToss section, everything will work fine, but
  305.     any area which you carry and which is also listed in one of your
  306.     host's NA-files (see next section) will be counted twice in the
  307.     count shown to the user, so the count may be off a bit.)
  308.  
  309.  9. You've finished defining areas that you carry, but CrystalFix will
  310.     let you support areas you don't even carry.  How does it do this?
  311.     With automatic forwarding of requests.  You see, what happens is
  312.     this.  You don't carry the echo FOOBAR, but your host does.  Your
  313.     downlink requests it.  CrystalFix knows that you don't carry it, but
  314.     it also knows your host does, so it creates a new area on your
  315.     system, as a passthrough area (that is, one that just goes through
  316.     your system, without the messages being created for your BBS),
  317.     and then it sends an areafix message to the host requesting the
  318.     area.  The result: transparently, by magic, the downlink gets his
  319.     echo and you don't have to do a thing.
  320.  
  321.     The same thing happens in reverse.  If there's a passthrough area
  322.     on your system with only one downlink attached, and they detach,
  323.     CrystalFix automatically deletes the area, and sends an areafix
  324.     to the host detaching from it.  Again, you don't have to do a
  325.     thing.
  326.  
  327.     (If you don't have any of these hosts, or you don't want to support
  328.     forwarded requests, just skip this step.)
  329.  
  330.     In order for CrystalFix to do this, you have to tell it about your
  331.     host(s).  For each host upstream from you, with whom you have
  332.     areafix priveleges, you need to add a HOST line like this:
  333.  
  334.       HOST <myaddress> <hostaddress> <hostpswd> <level> "<group>" "<NA-file>"
  335.  
  336.     <hostaddress> tells the Fido address of the host in question, and
  337.     <hostpswd> is your areafix on that system.  CrystalFix needs to
  338.     know these things in order to create the request that gets passed
  339.     upstream.  <myaddress> is also used to create that request; it's
  340.     the origin on that message.  It's also used in the created area
  341.     as the MAIN address; see the TrapToss manual to see what that
  342.     means.  The simple way to fill in <myaddress>: put your address
  343.     in the network that you're talking to that host on.  If it's your
  344.     AmyNet host, put your AmyNet address.  If it's your Vervan's Net
  345.     host, put your Vervan's Net address.
  346.  
  347.     The <level> and <group> are used like the individual area levels, but
  348.     apply to all areas that the host carries that you don't.
  349.  
  350.     Finally, the <NA-file> is the pathname of a file that lists all
  351.     the areas the host carries.  The format of this file is the same
  352.     as that of the FIDONET.NA file:
  353.  
  354.       <area tag> <description>
  355.  
  356.     Most networks produce a file in this format, so you can set your
  357.     aftersession up to automatically unpack these files as new ones
  358.     come in, and thus, your forward-request configuration is
  359.     automatically self-updating.  Cool!
  360.  
  361.     For instance, here's a HOST line for a mythical AmyNet system
  362.     (40:789/123) whose host (40:123/456) has a password set up
  363.     as AMYNET.
  364.  
  365.       HOST 40:789/123 40:123/456 AMYNET 0 "A" "Mail:AmyNet.NA"
  366.  
  367.     Optionally, you may want to have some special command executed
  368.     whenever a new area gets created.  You can use this command to update
  369.     BBS setups, notify other downlinks, update cost-keeping databases,
  370.     etc.  If this interests you see the ADDAREACMD in the command
  371.     summary section below.
  372.  
  373. 10. Next, you need to get a list together of all your downlinks, that
  374.     is, all the systems that have the right to areafix from you.
  375.     Give each one of them a password, a security level, and one or more
  376.     security groups (see step 5 for a description of how groups work).  To
  377.     set them up, use the SYSTEM command as follows:
  378.  
  379.       SYSTEM <address> "<password>" <level> "<groups>"
  380.  
  381.     For example, if 1:325/611 was allowed to areafix from you and had
  382.     a level of 10 and an areafixing password of XIFAERA, and belonged
  383.     to groups V and F, add this:
  384.  
  385.       SYSTEM 1:325/611.0 "XIFAERA" 10 "VF"
  386.  
  387. 11. The rest of the options are easy ones.  Anywhere in the file add
  388.     a line like this:
  389.  
  390.       SYSOP "<sysop name>"
  391.  
  392.     For instance, mine says
  393.  
  394.       SYSOP "Frank Perricone"
  395.  
  396.     This can actually go in the global or TrapToss section as well.
  397.     If you omit this, all mail to you will be to "SYSOP" and mail
  398.     sent upstream will be addressed from "SYSOP".
  399.  
  400. 12. Just like the SYSOP line, but this one is the path of the root
  401.     area where new echos should be created.  TrapToss requires a
  402.     pathname for all areas, even passthroughs, where it never uses
  403.     them.  Just in case it starts using them someday, though,
  404.     CrystalFix creates the area directory.  This is the path to
  405.     create it in.  For example, if yours is Mail:echos (the default)
  406.     and the new echo FOOBAR gets created, the path will be
  407.     Mail:echos/FOOBAR.  The keyword is:
  408.  
  409.       NEWPATH "Mail:echos"
  410.  
  411.     This goes in the CrystalFix section and defaults to "Mail:echos".
  412.  
  413. 13. By default, CrystalFix will append to every query a count of the
  414.     number of areas the system is attached to, out of how many
  415.     available, and how many total.  Use the COUNT command to change
  416.     this.  The default is COUNT ALL, which is described above.
  417.     COUNT AVAIL will not show the total number of areas, only
  418.     the available area count.  COUNT ATTACHED will only show the
  419.     number attached.  COUNT NONE will omit the line entirely.
  420.     Note: COUNTS is a synonym for COUNT, and AVAILABLE will work for
  421.     AVAIL.
  422.  
  423.     The main reason to change this is to save time in startup.  To
  424.     give the total count in ALL, CrystalFix must (during the startup)
  425.     read each host NA file.  If you have any hosts, this can make
  426.     things slow.  By switching this to something other than ALL,
  427.     you'll save that time.  Note: the COUNT command must come before
  428.     the HOST commands if you want to save the time of reading the
  429.     host files.  If it comes after, the display will be right, but the
  430.     time will not be saved after all.
  431.  
  432. 14. The last change to your config.  If you want to tell CrystalFix to
  433.     use a different loglevel than TrapToss, add a line like this:
  434.  
  435.       LOGLEVEL <loglevel>
  436.  
  437.     Available loglevels, from 0 to 9, mean the same thing as TrapToss
  438.     loglevels, roughly.  If you leave this out, it will use the same
  439.     level as TrapToss.  Similarly, to change the log file, use:
  440.  
  441.       LOGFILE "<logfile>"
  442.  
  443.     By default, CrystalFix will share its log with TrapToss (one less
  444.     log to read).
  445.  
  446.     If your helpfile isn't named Mail:CrystalFix.help add another line:
  447.  
  448.       HELPFILE "<helpfile>"
  449.  
  450.     The default size for tag names and pathnames when rewriting the
  451.     Fido.cfg and Tick.cfg are 23 and 30 respectively.  Change this if you
  452.     like with the following commands:
  453.  
  454.       TAGLENGTH <number>
  455.       PATHLENGTH <number>
  456.  
  457.     Now that you're done editing your Fido.cfg file, make a backup.
  458.  
  459. 15. If you use FTick and want to support CrystalFixing your tick areas,
  460.     you will need to also make a few changes to your FTick config.  These
  461.     are almost identical to the same ones you made to the AREA commands
  462.     in your Fido.cfg file.  This time, of course, you could have them under
  463.     FILEECHO or AREA blocks, since FTick supports both.
  464.  
  465.     Because FTick doesn't support GCF keywords, you have to disguise your
  466.     keywords as comments.  So in each FILEECHO block, you have to add the
  467.     following keywords:
  468.  
  469.       ;!LEVEL <level>
  470.       ;!GROUP "<group>"
  471.       ;!DESCRIPTION "<description>"
  472.  
  473.     These work exactly like the equivalent Fido.cfg ones, except for the
  474.     extra semicolon and exclamation point before them.  There's also one
  475.     extra one for FTick:
  476.  
  477.       ;!FLAGS "<flags>"
  478.  
  479.     As you know, all areas connected to a fileecho have certain flags
  480.     defining the connection.  For instance, H means that files should
  481.     be placed on hold; * means to never send files to this system;
  482.     etc.  This keyword determines what flags to give to any system
  483.     connecting to this area.  The default, if you don't put this
  484.     keyword in, is "H".  Here's a sample area:
  485.  
  486.       FILEECHO NODEDIFF                 Mail:Nodelist/
  487.         ;!LEVEL 0
  488.         ;!GROUP "F"
  489.         ;!DESCRIPTION "FidoNet nodelist nodediffs sent down weekly"
  490.         ;!FLAGS "HX"
  491.         TO 1:325/602.0 H*
  492.         Execute "Execute Mail:Scripts/ApplyNodediff %p%n"
  493.  
  494.     See SampleTick.cfg for more examples.
  495.  
  496.     Note: you don't have to put any "global" commands like SYSTEM, HOST,
  497.     LOGLEVEL, or any of those, into your tick config.  Those are read once
  498.     in Fido.cfg and used everywhere.
  499.  
  500. 16. Add to your Aftersession script, or wherever you process incoming
  501.     mail, the following line, after the mail is tossed:
  502.  
  503.       [rx] [<path>]CrystalFix [<fido.cfg-path> [<tick.cfg-path>]]
  504.  
  505.     The parts in square brackets are optional.  Start off with the
  506.     simplest case:
  507.  
  508.       rx CrystalFix
  509.  
  510.     If you didn't put CrystalFix.rexx in REXX:, put the path you actually
  511.     used, before the word CrystalFix, like so:
  512.  
  513.       rx mail:rexx/CrystalFix
  514.  
  515.     If your Fido.cfg isn't named Mail:fido.cfg, put the real name after
  516.     the end of the command:
  517.  
  518.       rx CrystalFix OverThere:Fido.cfg
  519.  
  520.     If your Tick.cfg isn't named Mail:tick.cfg, put the real name after
  521.     the end of the Fido.cfg name.  In this case, you have to put the
  522.     Fido.cfg-name in even if it's the default Mail:fido.cfg, like so:
  523.  
  524.       rx CrystalFix Mail:Fido.cfg Mail:tick/tick.cfg
  525.  
  526.     If you don't support FTick but for some bizarre reason you DO have
  527.     a file named mail:tick.cfg and you don't want it read, you must
  528.     include the tick.cfg name but make it the wrong name, such as
  529.  
  530.       rx CrystalFix Mail:fido.cfg t:ThisFileIsNotThere
  531.  
  532.     And if you're using the compiled C version, take the rx off the
  533.     beginning:
  534.  
  535.       CrystalFix
  536.  
  537.     I'm afraid that's about as short as you can make it.
  538.  
  539. 17. I recommend that you start making daily backups of your Fido.cfg file
  540.     and Tick.cfg file sometime during your nightly processing.  CrystalFix
  541.     has never scrambled my config file yet, but you can't be too safe.
  542.  
  543. That's it.  You're ready.
  544.  
  545.  
  546. *** How does my downlink request something? ******************************
  547.  
  548. CrystalFix works almost exactly like any other Areafix.  There are two
  549. exceptions I'll mention later.  If you're not familiar with Areafix
  550. programs, you should read the enclosed CrystalFix.help file now.
  551.  
  552. The first difference between CrystalFix and other Areafix programs is
  553. that it does not accept the -Q, -L, etc. options after the password on
  554. the subject line.  I don't like them; the more modern %QUERY and similar
  555. commands make a lot more sense.  I don't think this is going to break
  556. any hearts.  Maybe if it does, I'll relent and put those in.  But for now,
  557. I encourage you to encourage your downlinks to get used to the newer, more
  558. powerful syntax.
  559.  
  560. The second is that CrystalFix's security levels do NOT prevent you from
  561. being attached to an area; they merely prevent you from being able to
  562. change your status with CrystalFix.  Your downlink may be attached (by
  563. you, manually) to an area, but not see it in his %QUERY results, and
  564. not be able to attach, detach, or rescan it.  This is handy for those
  565. areas which are required: network administration echos, test echos,
  566. and the like.  After all, why should they BE ABLE to do something they're
  567. NOT ALLOWED to do?  Keep 'em in line, that's what I say!
  568.  
  569. Briefly, then, a summary of CrystalFix's operation.  Messages should be
  570. addressed to CrystalFix, Areafix, AreaLink, AreaManager, or GEcho, and
  571. originate from the system in question.  The subject line should be the
  572. system's areafix password only.  (Only the first word is paid attention
  573. to anyway.)  The body text contains commands which can be:
  574.  
  575.   <areaname> or +<areaname> : attach to an area
  576.   -<areaname>               : detach from an area
  577.   *<areaname>               : rescan an area.  Must already be attached.
  578.   %QUERY                    : send a list of available areas, also showing
  579.                               what areas are already attached.
  580.   %LIST                     : same as %QUERY
  581.   %HELP                     : send a help document
  582.  
  583. These can occur in any order.  In fact, if you do a %QUERY, then some
  584. attaches, then another %QUERY all in one message, your reply message
  585. will show the query results before the attaches happen, then the
  586. attaches, then the results after the attaches.
  587.  
  588. Any new commands I decide to add will follow these patterns.
  589.  
  590. A note on rescan: to avoid dupes, CrystalFix manufacturers an artificial
  591. Fido config file to do the rescan with.  This will look a bit odd in your
  592. log, if you use one log for both programs, as the TrapToss log will be
  593. in the middle of the CrystalFix log.  But it works.
  594.  
  595.  
  596. *** Where's the obligatory list of keywords for the config file? *********
  597.  
  598. Here they are, in more technical verbiage than you've seen before, but
  599. you've already learned about all of them.
  600.  
  601.   ADDAREACMD "<command>"
  602.     Location: Fido.cfg, CrystalFix section
  603.  
  604.     Defines a command to be executed whenever a new message area is
  605.     created.  Use the following percent-sign sequences to be automatically
  606.     filled in with the following values:
  607.  
  608.     %t   new area tag name
  609.     %p   new area path
  610.     %l   security level of new area
  611.     %g   security group of new area
  612.     %d   description of new area
  613.  
  614.     %m   main address of your system in this area
  615.     %r   requesting system node address
  616.     %s   host system new area is being requested from
  617.     %h   host areafix password
  618.  
  619.     %f   filename of Fido.cfg
  620.     %o   filename of log file in use
  621.     %v   log level in use
  622.     %y   your (SYSOP) name
  623.     %q   quote mark (because you can't use \" or *" here, sorry)
  624.     %%   %
  625.  
  626.   COUNT NONE | ATTACHED | AVAIL | ALL
  627.     Location(s): Fido.cfg, CrystalFix section
  628.  
  629.     Determines how much info to include in the last line of a %QUERY.
  630.     NONE means none.  ATTACHED means only show a count of areas
  631.     attached.  AVAIL shows ATTACHED plus a count of available areas.
  632.     ALL shows all of this plus a count of total areas.  If the level
  633.     is not ALL, the host files will *not* be read when a HOST command
  634.     is encountered, saving some time on systems with big host files.
  635.     COUNTS is a synonym for COUNT, and AVAILABLE is a synonym for
  636.     AVAIL.
  637.  
  638.   [;!]DESCRIPTION "<description>"
  639.     Location(s): Fido.cfg, TrapToss section, AREA block
  640.                  Tick.cfg, FILEECHO block (with ";!")
  641.  
  642.     Follows an AREA command, like options like KEEP, MAIN, STRIP, or
  643.     DISALLOW already do.  Sets a description for an area.  If missing,
  644.     the description is "No description available".  Enclose descriptions
  645.     in quotes, and try to keep them to 50 characters or less (though
  646.     there is no real limit).  DESC is a synonym.
  647.  
  648.   ;!FLAGS "<flags>"
  649.     Location(s): Tick.cfg, FILEECHO block
  650.  
  651.     Sets the default flags for newly attached systems for this filearea.
  652.  
  653.   [;!]GROUP "<group>"
  654.     Location(s): Fido.cfg, TrapToss section, AREA block
  655.                  Tick.cfg, FILEECHO block (with ";!")
  656.  
  657.     As DESCRIPTION, but sets the groups required to get an area.  A system
  658.     must own all the groups listed, if any, to access the area.
  659.     Default is none ("").  GROUPS is a synonym for GROUP.
  660.  
  661.   HELPFILE "<pathname>"
  662.     Location(s): Fido.cfg, CrystalFix section
  663.  
  664.     Gives the pathname to an ASCII file used for the %HELP command.
  665.     Default is "Mail:CrystalFix.help".
  666.  
  667.   HOST <myaddress> <hostaddress> <hostpswd> <level> "<group>" "<NA-file>"
  668.     Location(s): Fido.cfg, CrystalFix section
  669.  
  670.     Defines a host with whom my system has areafix priveleges, and
  671.     a pathname to a file containing a list of areas on that system.
  672.     <myaddress> is the address to be used in the MAIN config item
  673.     for TrapToss to support multinetwork passthrough areas, and also
  674.     to be put onto areafix forward messages.  <hostaddress> is the
  675.     address of the host; <hostpswd> is your areafix password at that
  676.     host.  <level> & <group> apply to all areas in the list.  <NA-file>
  677.     is the pathname to a file in the format
  678.     <tag> <description>
  679.     for as many lines as you like.  FIDONET.NA is already perfect.
  680.     This must be in the CrystalFix section.  If this isn't after the
  681.     TrapToss section, the counts in %QUERYs may be wrong.
  682.  
  683.   [;!]LEVEL <level>
  684.     Location(s): Fido.cfg, TrapToss section, AREA block
  685.                  Tick.cfg, FILEECHO block (with ";!")
  686.  
  687.     As DESCRIPTION, but sets the security level required to access an
  688.     area.  A system must have at least this high a level.  Any number,
  689.     even negatives (or non-integers) is allowed.  Default is 0.
  690.  
  691.   LOGFILE "<log file>"
  692.     Location(s): Fido.cfg, CrystalFix section
  693.  
  694.     Pick a file to be used for CrystalFix logging.  If this is not
  695.     present, TrapToss's logfile is used.
  696.  
  697.   LOGLEVEL <log level>
  698.     Location(s): Fido.cfg, CrystalFix section
  699.  
  700.     Sets CrystalFix's loglevel.  If this is not present, TrapToss's
  701.     loglevel is used.  The values mean about the same as TrapToss's;
  702.     that is, 1 to 9, 1 is least logging, and 0 is no logging at all.
  703.  
  704.   NEWPATH "<newpath>"
  705.     Location(s): Fido.cfg, CrystalFix section
  706.  
  707.     Defines the root area where new echos should be created.  For
  708.     instance, if you use Mail:echos (the default) and a new area with
  709.     a tagname of FOOBIE is created, its path will be Mail:echos/FOOBIE.
  710.  
  711.   PATHLENGTH <length>
  712.     Location(s): Fido.cfg, CrystalFix section
  713.  
  714.     Changes the length of pathnames when CrystalFix rewrites Fido.cfg
  715.     and Tick.cfg.  Default is 30 characters.
  716.  
  717.   SYSOP "<sysop name>"
  718.     Location(s): Fido.cfg, global or TrapToss or CrystalFix section
  719.  
  720.     Defines the name of the SYSOP, to whom any bounce messages will be
  721.     forwarded.  Default is "SYSOP".
  722.  
  723.   SYSTEM <address> <password> <level> "<groups>"
  724.     Location(s): Fido.cfg, CrystalFix section
  725.  
  726.     This keyword defines a system with priveleges to Areafix, the
  727.     password which should appear on the subject lines of its messages,
  728.     and its access level (any number) and groups (see step 5).
  729.  
  730.   TAGLENGTH <length>
  731.     Location(s): Fido.cfg, CrystalFix section
  732.  
  733.     Changes the length of tag names when CrystalFix rewrites Fido.cfg
  734.     and Tick.cfg.  Default is 23 characters.
  735.  
  736. Also note that CrystalFix will only get info from the following TrapToss
  737. commands:
  738.  
  739.   NODE, NETMAIL, 4DMSGHEADER, LOGFILE, LOGLEVEL, AREA, and MAIN
  740.  
  741. and these FTick commands:
  742.  
  743.   FILEECHO, AREA, PATH, TO
  744.  
  745.  
  746. *** How do I get support? ************************************************
  747.  
  748. OK, here's the standard spiel.  CrystalFix is not free.  Close, though.
  749. It's postcardware.  Get a postcard and mail it to me.  Total cost to you
  750. should be less than a dollar, which is not a lot to ask for a program of
  751. this quality, even if you DO have to drive into town to get a postcard.
  752. If you can't find a postcard, take a photo, glue it to some cardstock or a
  753. cutout piece of cereal box, and mail that.  The post office usually will
  754. accept it.  I prefer pics of local scenery of the place where you live.
  755.  
  756. Mail your postcard to:
  757.  
  758.   Mynstrel's Song Productions
  759.   RR 2 Box 5239
  760.   Berlin VT 05602
  761.  
  762. While you're driving all the way into town to get that postcard, get two
  763. or three more.  You might find you like another one of my programs!  :)
  764.  
  765. The most obvious advantage of registration is that I'll give you access to
  766. the C compiled version, translated to C by Brian McMurry.  This version
  767. should be somewhat faster (though its source is not available, so you can't
  768. tweak it as easily).
  769.  
  770. In addition, I'll be glad to offer support.  That is, help setting it up,
  771. feature requests, and the like.  Support to non-registered users is not
  772. nearly as assured.  I can be reached in many of the Fido echos, including
  773. AMIGA_SYSOP, TRAPDOOR, and FALCON_CBCS.  Netmail to me at 1:325/611 or
  774. Internet mail at perricone@wsyd.com should work fine too.  If you're
  775. having a repeatable problem, I'd really appreciate a copy of your
  776. Fido.cfg file (before and after, if appropriate).
  777.  
  778. Please feel free to upload the archive this came in, to your favorite BBS.
  779. And your least-favorite, too.  But don't modify it and distribute the
  780. modified version without my explicit permission.  (Rearchiving it with
  781. a different archiver is allowed as long as all the files inside are the
  782. same.  And I suppose you can add one of those hateful zzzendpad files,
  783. in case there's still some BBS user on a remote island in the Pacific who
  784. hasn't heard of ZModem yet.)  If you want to modify the source code for
  785. your own porpoises, that's fine with me, though it doesn't absolve you of
  786. your responsibility to register it.  But you can't distribute the modified
  787. version without my permission.  (Don't worry, I'm easy.)  And if the
  788. modifications are more than cosmetic, my ability to support the result
  789. may be pretty limited, though I'll do what I can.  The compiled C version
  790. may not be redistributed without the explicit permission of me or Brian.
  791.  
  792. Registered Users to date:
  793.  
  794.   USER                  FIDO         BBS               NOTES
  795.   --------------------- ------------ ----------------- ------------------
  796.   Peter Deane           3:622/401    Inquestor         Beta-tester
  797.  
  798. Be within, not without.
  799.  
  800.